home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / HENSA / MISC / SHELL.ARC / Shell / Other / History
Encoding:
Text File  |  1994-12-07  |  8.5 KB  |  290 lines

  1. Shell History.
  2.  
  3.  
  4.  
  5. Released versions.
  6. ------------------
  7.  
  8.  
  9. 1.00    19-May-1994
  10.  
  11.  
  12. 1.11    17 Nov 1994
  13.  
  14. Added spriterects, to which you can redirect all graphics. 
  15.  
  16. Added a Save library, as Shell uses a newer version of Save_ than that
  17. supplied with DeskLib.
  18.  
  19. Added shell sprites to the Shell directory, and also ShellLib$Path
  20. (thanks to Alan Fitch for these.
  21.  
  22. Tidied up the example program a lot, and made a few small changes to
  23. various sub-libraries.
  24.  
  25.  
  26.  
  27.  
  28.  
  29. Details
  30. -------
  31.  
  32.  
  33. 15-Apr-1994
  34.  
  35. Made Shell_ReLabel take notice of the rectangle's update_time, so that
  36. the label is only updated slowly. This was mildly complicated because
  37. the rect has to be redrawn imediately if the label changes size.
  38.  
  39. 18-Apr-1994
  40.  
  41. Added Shell_AddDoubleBarGraph2.
  42. Changed Shell_OpenGFXWindow to Shell_OpenWindow. Put a '#define
  43. Shell_OpenGFXWindow Shell_OpenWindow' in Shell.Shell.h' so old programs
  44. still run.
  45.  
  46.  
  47. 26-Apr-1994
  48. Changed to open windows open_NEARLAST instead of open_UNDERPOINTER
  49.  
  50.  
  51.  
  52. 02-May-1994
  53.  
  54. Added Shell_Printf, which just calls Shell_TextRectPrint( NULL, ...).
  55. This provides a simple replacement for printf.
  56.  
  57.  
  58.  
  59. 03-May-1994
  60.  
  61. Changed Shell_2DDoubleArray so that it can save an array. I rather
  62. shortsitedly forgot to save the size of a 2DDouble array so had to copy
  63. bits of Shell_GeneralArray code.
  64.  
  65.  
  66. 04-May-1994
  67.  
  68. Added 'Shell_WaitPrintf'. This is the same as Shell_Printf, but stores
  69. the string to be printed in a malloc block and only sends it to
  70. Shell_TextRectPrintf( NULL, ...) on the next event_NULL. This makes it
  71. capable of being called from within (for e.g.) a window-redrawing
  72. function (Using Shell_Printf from within such a function will confuse
  73. the Wimp as Shell_Printf will call Wimp_ForceRedraw etc).
  74.  
  75.  
  76.  
  77. 05-May-1994
  78.  
  79. changed the (convert_block *) passed to Shell_ redraw functions to a
  80. special wimp_point (typedef-ed as a Shell_convertpoint): A convert_block
  81. contains 6 ints: rect.min/max.x/y, scroll.x/y, but all that is really
  82. needed is 2 ints.
  83.  
  84. For example, we could do the following:
  85.  
  86.  
  87. int RedrawFn( ... )
  88. {
  89. typedef wimp_point Shell_convert_block;
  90.  
  91. Shell_convert_block    convert;
  92.  
  93. convert.x = visiblearea.min.x - scroll.x;
  94. convert.y = visiblearea.max.y - scroll.y;
  95.  
  96. /*then:*/
  97.  
  98. screen.x = workarea.x + convert.x;
  99. screen.y = workarea.y + convert.y;
  100.  
  101. /*or*/
  102.  
  103. workarea.x = screen.x - convert.x;
  104. workarea.y = screen.y - convert.y;
  105. }
  106.  
  107. Here, 'convert.x/y' is the screen coordinates of the origin of the
  108. window. Note that this  is not restricted to the actual physical screen.
  109.  
  110. When redrawing, one could set the GFX origin to (convert.x, convert.y)
  111. and then use OS_Plot with workarea coors. The problem with doing this is
  112. that OS_Plot only accepts 16 bit numbers, so doing this with large
  113. windows doesn't work. (Apparently RO3.5 OS_Plot uses the full 32 bit
  114. representation.)
  115.  
  116. Anyway, the above method means that we only have to pass 2 ints to the
  117. redrawing functions, and the said fns have a simpler job of converting
  118. to the screen coors. Also, I pass the Shell_convert_block directly (as 2
  119. ints) rather than passing a pointer, to increase speed.
  120.  
  121.  
  122.  
  123. 06-May-1994
  124.  
  125. Added a new rectangle type - PlainRect. The idea is to define a plain
  126. rect on top of (so it gets shift-menu clicks) a group of graphical
  127. rects; saving a Plain rect will create a Sprite which contains the
  128. contents of the window in the region of the plain-rect. This means you
  129. can create a sprite of an area of a shell window, even if the area is
  130. bigger than the screen-size. I did this because one of my programs
  131. displays some BlockRects which I wanted to include in a document. I used
  132. to grab parts of the window using Paint and then stick them together,
  133. but by defining a transparent plain-rect which covers all the block
  134. rects, I can now save the entire region as a sprite. NB this works by
  135. creating a sprite in memory, redirecting all VDU to this sprite,
  136. redrawing the region using a doctored Shell_convertpoint, then switching
  137. output back to the screen. At the moment, text is half-height compared
  138. to a mode-31 screen, and icon borders/backgrounds don't appear in the
  139. sprite. I don't know why as yet.
  140.  
  141. Also altered the save functions so that rects are saved with particular
  142. filetypes - Paint only accepts sprite files for e.g. so this was
  143. important for saving plainrects. The default is to save data as text.
  144.  
  145.  
  146. 10-May-1994
  147.  
  148. Maybe all Shell rectangle redrawing routines should work in coordinates
  149. which are relative to the bottom-left of the rectangle. This would be
  150. easy to do with the new Shell_onvertpoint, and would mean that less info
  151. has to be passed to the redrawing routine - instead of the bigrect,
  152. which tells the routine what the original rectangle size was, just pass
  153. a wimp_point, size.x/y which tells how big the rect is. It would also
  154. simplify much of the redrawing code, which at the moment seeems to do a
  155. lot of ( x + bigrect.min.x, y+bigrect.min.y) etc. Ummm...
  156.  
  157.  
  158. 16-May-1994
  159.  
  160. Added a different version of Shell_AddPlainRect called
  161. Shell_AddPlainGreyRect. This is identical to a normal plainrect, except
  162. when you save it, Shell creates a 256-colour sprite with a grey-scale
  163. palette. I did this so I could export useful sprites for including in
  164. documents - previously, I had used large Shell_blockrects so that the
  165. ESG-ing would give ~256 greys, but these got a bit big (1-2 MB!). Now
  166. you can display small blockrects, save them as a grey-sprite, and
  167. include magnified versions of them in Draw or wordprocesser files. (Can
  168. you tell it's write-up-thesis time?). Note that this will only work well
  169. if the shellrects inside the plaingreyrect use ColourTrans_SetGcol etc
  170. instead of Wimp_SetColour. DeskLib makes it very simple to use
  171. ColourTrans so this is not a big problem.
  172.  
  173.  
  174.  
  175. 18-May-1994
  176.  
  177. Changed the headers to do a
  178.  
  179. #ifndef __dl_wimp_h
  180. #include "DeskLib:Wimp.h"
  181. #endif
  182.  
  183. to speed compilation.
  184.  
  185. Also changed the order of #includes in Shell.*.c so that the simpler
  186. headers are included first (e.g. <*.h>, "DeskLib.*.h", "Shell.*.h". This
  187. way, headers are never loaded twice, but source files don't have to do
  188. any #ifndef __dl_wimp_h etc. Of course, most headers have #ifndef
  189. __dl_wimp_h, #define ... ... #endif, but this method still involves
  190. loading the header file from disc so is slow.
  191.  
  192.  
  193.  
  194. 18-May-1994
  195.  
  196. Altered the makefile to use -fah flags for cc. These check for variables
  197. being used before they are set etc. Added macro #define UNUSED(x)
  198. (x)=(x) to Shell.Shell.h as many functions don't use dome of their
  199. parameters, which causes a warning from Desktop CC.
  200.  
  201.  
  202.  
  203. 1.00    19-May-1994
  204.  
  205. Tidied up the Shell_AddPlainRect/Shell_AddPlainGreyRect code.
  206.  
  207. *************************************************
  208. *****Released to stuttgrt and wombat*************
  209. *************************************************
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. 1.01    14 Jul 1994
  218.  
  219. Made Shell_PrintString into a macro.
  220.  
  221.  
  222. 1.02    26 Jul 1994
  223.  
  224. Added Shell_AddSpriteRect - makes a rect which is a sprite, and allows
  225. you to redirect to this sprite. Also allows you to save the sprite.
  226.  
  227. The sprite handling in Shell is a bit messy. Changing mode doesn't work
  228. properly for example, as the sprite is only displayed properly in the
  229. original mode.
  230.  
  231. Added Shell_Print( string) which is a macro to print a string to the
  232. default window, with no formating etc. This is useful when printing big
  233. (>1024 chrs) chunks of text to the default output window in one go.
  234.  
  235. 1.03    29 Aug 1994
  236.  
  237. Made Shell_TextRectPrint return if null string - stops fickering
  238.  
  239.  
  240. 1.04    30 Aug 1994
  241.  
  242. Added Shell_ForceRectRedrawAll - redraws any border of the rect
  243.  
  244.  
  245. 1.05    04 Nov 1994
  246.  
  247. Added the Save library - this is just the Save 1.02 from DeskLib, with
  248. 'Shell_Save02_ prefixing every function name etc. The reason for doing
  249. this is that DeskLib has been released with Save 1.00, but Shell has
  250. been updated to use Save 1.02 which contains many improvents (by Jason
  251. Howat). I thought a new version of DeskLib would be released with Save
  252. 1.02, but this hasn't happened. Hence as a stop-gap, this version of
  253. Shell has its own Save_ library, and doesn't use the DeskLib one.
  254.  
  255. Modified the ShellEG demonstration program to put a sprite supplied by
  256. Alan Fitch onto the iconbar.
  257.  
  258. Put Alan Fitch's !Run and !Boot files into the Shell directory.
  259.  
  260. Tidied up ShellDemo so that it only uses DeskLib and ShellLib and none
  261. of my own other libs.
  262.  
  263.  
  264. 1.06    10 Nov 1994
  265.  
  266. Made Shell_AddBarIcon return the icon handle of the bar icon.
  267. Made Shell_Poll restore the old event_mask when it returns.
  268.  
  269.  
  270. 1.10    17 Nov 1994
  271.  
  272. A few changes to the docs.
  273.  
  274. 1.11    22 Nov 1994
  275.  
  276. Removed multiple definitions of Shell_FindWindBlock, and added #define
  277. for Error_PLACE.
  278.  
  279.  
  280. 1.12    23 Nov 1994
  281.  
  282. Corrected incorrect OS_SpriteOp SWI number in RedrawToSp.c. Thanks to
  283. David Bilsby for finding this bug.
  284.  
  285.  
  286. 1.13    06 Dec 1994
  287.  
  288. Included an EasyC-compatible version of ShellLib. Thanks to Ian
  289. MacDougall for this.
  290.